#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Black

int gi_76 = 20;
double g_ibuf_80[];
double g_ibuf_84[];
double g_ibuf_88[];
double g_ibuf_92[];
int gi_96;
int gi_unused_100 = 0;

int init() {
   IndicatorBuffers(4);
   if (!SetIndexBuffer(0, g_ibuf_80) && !SetIndexBuffer(1, g_ibuf_84) && !SetIndexBuffer(2, g_ibuf_88) && !SetIndexBuffer(3, g_ibuf_92)) Print("cannot set indicator buffers!");
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow(0, 174);
   SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow(1, 174);
   SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexStyle(3, DRAW_NONE);
   SetIndexArrow(2, 174);
   gi_96 = gi_76 + MathFloor(MathSqrt(gi_76));
   SetIndexDrawBegin(0, gi_96);
   SetIndexDrawBegin(1, gi_96);
   SetIndexDrawBegin(2, gi_96);
   IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1.0);
   IndicatorShortName("GJ3");
   SetIndexLabel(0, "GJ3");
   return (0);
}

int start() {
   double l_ima_on_arr_0;
   int li_8 = IndicatorCounted();
   if (li_8 < 1) {
      for (int li_12 = 1; li_12 <= gi_96; li_12++) g_ibuf_92[Bars - li_12] = 0;
      for (li_12 = 1; li_12 <= gi_76; li_12++) {
         g_ibuf_80[Bars - li_12] = 0;
         g_ibuf_84[Bars - li_12] = 0;
         g_ibuf_88[Bars - li_12] = 0;
      }
   }
   if (li_8 > 0) li_8--;
   int li_16 = Bars - li_8;
   for (li_12 = 0; li_12 < li_16; li_12++) g_ibuf_92[li_12] = 2.0 * iMA(NULL, 0, MathFloor(gi_76 / 1.5), 0, MODE_LWMA, PRICE_CLOSE, li_12) - iMA(NULL, 0, gi_76, 0, MODE_LWMA, PRICE_CLOSE, li_12);
    
   int l_ind_counted_8 = IndicatorCounted();
   if (l_ind_counted_8 > 0) li_16 = 0;
   for (li_12 = 0; li_12 <= li_16; li_12++) 
   {
      l_ima_on_arr_0 = iMAOnArray(g_ibuf_92, 0, MathFloor(MathSqrt(gi_76)), 0, MODE_LWMA, li_12 + 1);
      double l_ima_on_arr_20 = iMAOnArray(g_ibuf_92, 0, MathFloor(MathSqrt(gi_76)), 0, MODE_LWMA, li_12);
      if (l_ima_on_arr_0 > l_ima_on_arr_20) {
         g_ibuf_80[li_12] = EMPTY_VALUE;
         g_ibuf_84[li_12] = EMPTY_VALUE;
         g_ibuf_88[li_12] = l_ima_on_arr_0;
         //g_ibuf_88[li_12 - 1] = l_ima_on_arr_20;
      } else {
         if (l_ima_on_arr_0 < l_ima_on_arr_20) {
            g_ibuf_80[li_12] = l_ima_on_arr_0;
            //g_ibuf_80[li_12 - 1] = l_ima_on_arr_20;
            g_ibuf_84[li_12] = EMPTY_VALUE;
            g_ibuf_88[li_12] = EMPTY_VALUE;
         } else {
            g_ibuf_80[li_12] = -1;
            g_ibuf_84[li_12] = l_ima_on_arr_0;
            //g_ibuf_88[li_12 - 1] = l_ima_on_arr_20;
            g_ibuf_88[li_12] = -1;
         }
      }
      //l_ima_on_arr_20 = l_ima_on_arr_0;
   }
   return (0);
}

